﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using DAL.Entity;
using DAL.Persistencia;
using BLL.Utils;

namespace NewTierra.Pages
{
    public partial class AddPeriodoBlack : System.Web.UI.Page
    {

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                lblSupplier.Text = Convert.ToString(Session["Snome"]);
                PopulaDropMercado();
                PopulaDropBaseTarifaria();
                LimpaCampos(this.Controls);
            }
        }

        #region Popular Dados

        void PopulaDropMercado()
        {
            try
            {
                NewTierraEntities n = new NewTierraEntities();
                DropMercado.DataSource = n.Mercadoes.ToList();
                DropMercado.DataValueField = "Mercado_id";
                DropMercado.DataTextField = "Mercado_nome";
                DropMercado.DataBind();
            }
            catch (Exception ex)
            {
                lblMsgAddPeriodo.Text = "Erro. " + ex.Message;
            }

        }

        void PopulaDropBaseTarifaria()
        {
            try
            {
                NewTierraEntities n = new NewTierraEntities();
                DropBaseTarifaria.DataSource = n.BaseTarifarias.ToList();
                DropBaseTarifaria.DataValueField = "BaseTarifaria_id";
                DropBaseTarifaria.DataTextField = "BaseTarifaria_nome";
                DropBaseTarifaria.DataBind();
            }
            catch (Exception ex)
            {
                lblMsgAddPeriodo.Text = "Erro. " + ex.Message;
            }
        }

        #endregion

        #region Regras Periodos Black
       
        protected void CadastrarPeriodoBlack(object sender, EventArgs e)
        {
            try
            {

                Utils u = new Utils();

                if (!u.ValidaLetrasNumeros(txtObs.Text))
                {
                    lblMsgAddPeriodo.Text = "No campo observação, possui caracteres inválidos.";
                    return;
                }

                S_Mercado_Periodo_Black smb = new S_Mercado_Periodo_Black();


                smb.S_merc_periodo_black_from = Convert.ToDateTime(from.Text);
                smb.S_merc_periodo_black_to = Convert.ToDateTime(to.Text);
                smb.S_merc_periodo_black_obs = txtObs.Text;
                smb.S_id = Convert.ToInt32(Session["Sid"]);
                smb.Mercado_id = Convert.ToInt32(DropMercado.SelectedValue);
                smb.BaseTarifaria_id = Convert.ToInt32(DropBaseTarifaria.SelectedValue);

                PeriodoBlackDAL d = new PeriodoBlackDAL();
                d.Salvar(smb);

                LimpaCampos(this.Controls);
                lblMsgAddPeriodo.Text = "Cadastro efetuado com sucesso.";
            }
            catch (Exception ex)
            {
                lblMsgAddPeriodo.Text = ex.Message;
                throw;
            }
        }

        protected void LimpaCampos(ControlCollection controls)
        {
            foreach (Control ctrl in controls)
            {
                if (ctrl is TextBox)
                {
                    (ctrl as TextBox).Text = string.Empty;
                }
                // ... demais controles que queira limpar

                LimpaCampos(ctrl.Controls);
            }
        }

        #endregion

    }
}